home *** CD-ROM | disk | FTP | other *** search
- {
- Here is a program I wrote to see how good my new 387sx co-processor was. It
- uses the standard REAL type.
- }
- program Math_Speed_Test;
- {$N-,E-,R-,S-}
-
- uses dos;
-
- var i : longint;
- num1, num2, num3 : real; { or double }
- output : text;
- hou,minu,seco,s100 : word;
- StartClock,
- StopClock : Real;
-
- Procedure ClockOn;
-
- Begin
- GetTime(hou,minu,seco,s100);
- StartClock:=( hou * 3600 ) + ( minu * 60 ) + seco + ( s100 / 100 );
- End;
-
- Procedure ClockOff;
-
-
- Begin
- GetTime(hou,minu,seco,s100);
- StopClock:=( hou * 3600 ) + ( minu * 60 ) + seco + ( s100 / 100 );
- WriteLn(output,'Elapsed Time = ',(StopClock-StartClock):0:2,'s');
- End;
-
-
- begin
- assign(output,'');
- rewrite(output);
- clockon;
- {$IFOPT N+}
- writeln(output,'Using 8087 Code');
- {$ELSE}
- writeln(output,'Using Software floating point routines');
- {$ENDIF}
- for i:=1 to 100000 do
- begin
-
- num1:=random(60000)/100;
- repeat
- num2:=random(60000)/100;
- until num2>0;
- num3:=num1/num2;
-
- end;
- clockoff;
- close(output);
-
- end.
-
- And the results.....
-
- Using Software floating point routines
- Elapsed Time = 31.03s
-
- Using 8087 Code
- Elapsed Time = 8.78s
-
- However, changing REAL to DOUBLE gives
-
- Using 8087 Code
- Elapsed Time = 5.50s
-
- I don't want to remove my co-processor, so I can't get the results for
- using the emulation library :-). You could compile the program and try it
- for yourself.
-